package com.richpay.basejava.base09;

public class Pig extends Animal {
    public String name="猪";

    static{
        System.out.println("===Pig static====");
    }

    {
        System.out.println("===Pig的构造代码块====");
    }


    public Pig(){
        //super();//这句代码如果程序员没有写，则在编译时编译器会自动帮助程序员加上,super():显示调用父类的无参构造函数

        super("小强");//显示调用父类含有一个字符串参数的构造函数,此时就不会再调用父类的无参构造函数了

        //执行本类构造代码的时间

        System.out.println("==Pig()====");
    }

    public Pig(String name){
        super(name);//使用super([实参列表])显示调用父类的构造函数时，
        //这条语句必须作为当前构造函数的第一条可执行语句
        //因此，this()和super()不能同时存在.
        //执行本类构造代码的时间

        System.out.println("===Pig(String name)===");

        //display(this);//this:可以作为实参传递给形参

        //display(super);//错误：super不能作为实参传递给形参
    }

    @Override
    public void eat() {
        System.out.println("猪吃");
    }


    @Override
    public void drink() {
        System.out.println("猪喝");
    }

    @Override
    public void sleep() {
        System.out.println("猪睡");
    }

    public void gongDi(){
        System.out.println("猪拱白菜");
    }

    public void display(Pig pig){
        System.out.println("===display(Pig pig)====");
    }

    public void display(Animal al){
        System.out.println("===display(Animal al)====");
    }

    public static void show(){
        //this.name="show";//错误：this关键字不能出现在静态方法中
        //super.name="animal";//错误：super关键字不能出现在静态方法中
    }
}
